home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_300 / 388_01 / ae / 93 / jul / key.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-06  |  2.3 KB  |  109 lines

  1. /*
  2.  * key.h
  3.  *
  4.  * Anthony's Editor July 93
  5.  *
  6.  * Copyright 1993, 1993 by Anthony Howe.  All rights reserved.  No warranty.
  7.  */
  8.  
  9. #ifndef __key_h__
  10. #define __key_h__    1
  11.  
  12. #undef _
  13. #ifdef __STDC__
  14. #define _(x)    x
  15. #else
  16. #define _(x)    ()
  17. #endif
  18.  
  19. #define K_BUFFER_LENGTH        256
  20. #define ISFUNCKEY(x)        ((x) < 0)
  21.  
  22. /*
  23.  * Command key constants.
  24.  */
  25. #define K_ERROR        (-1)
  26. #define K_DISABLED    (-2)
  27.  
  28. /* Edit functions. */
  29. #define K_INSERT_ENTER    (-101)
  30. #define K_INSERT_EXIT    (-102)
  31. #define K_DELETE_LEFT    (-103)
  32. #define K_DELETE_RIGHT    (-104)
  33. #define K_FLIP_CASE    (-105)
  34. #define K_BLOCK        (-106)
  35. #define K_CUT        (-107)
  36. #define K_PASTE        (-108)
  37. #define K_UNDO        (-109)
  38.  
  39. /* Cursor motion. */
  40. #define K_CURSOR_UP    (-110)
  41. #define K_CURSOR_DOWN    (-111)
  42. #define K_CURSOR_LEFT    (-112)
  43. #define K_CURSOR_RIGHT    (-113)
  44. #define K_PAGE_UP    (-114)
  45. #define K_PAGE_DOWN    (-115)
  46. #define K_WORD_LEFT    (-116)
  47. #define K_WORD_RIGHT    (-117)
  48. #define K_LINE_LEFT    (-118)
  49. #define K_LINE_RIGHT    (-119)
  50. #define K_FILE_TOP    (-120)
  51. #define K_FILE_BOTTOM    (-121)
  52.  
  53. /* Support functions. */
  54. #define K_ITSELF    (-122)
  55. #define K_REDRAW    (-123)
  56. #define K_SHOW_VERSION    (-124)
  57. #define K_HELP        (-125)
  58. #define K_HELP_OFF    (-126)
  59. #define K_HELP_TEXT    (-127)
  60. #define K_MACRO        (-128)
  61. #define K_MACRO_DEFINE    (-129)
  62. #define K_LITERAL    (-130)
  63. #define K_QUIT        (-131)
  64. #define K_QUIT_ASK    (-132)
  65. #define K_FILE_READ    (-133)
  66. #define K_FILE_WRITE    (-134)
  67. #define K_STTY_ERASE    (-135)
  68. #define K_STTY_KILL    (-136)
  69. #define K_COUNT        (-137)
  70.  
  71. #define K_MAX_CODES    38
  72.  
  73. /* 
  74.  * Function error codes. 
  75.  */
  76. #define INITKEY_OK    0
  77. #define INITKEY_OPEN    1
  78. #define INITKEY_ALLOC    2
  79. #define INITKEY_ERROR    3
  80.  
  81. /*
  82.  * ASCII Control Codes 
  83.  */
  84. #undef CTRL
  85. #define CTRL(x)        ((x) & 0x1f)
  86.  
  87. typedef struct t_keymap {
  88.     short code;        /* Function code. */
  89.     char *lhs;        /* Left hand side invokes function or macro. */
  90.     char *rhs;        /* Right hand side macro expansion. */
  91. } t_keymap;
  92.  
  93. typedef struct t_keyinit {
  94.     short code;
  95.     char *lhs;
  96.     int (*fn) _((t_keymap *));
  97. } t_keyinit;
  98.  
  99. extern int initkey _((char *, t_keymap **));
  100. extern void finikey _((t_keymap *));
  101. extern t_keymap *findkey _((t_keymap *, char *));
  102. extern t_keyinit *findikey _((t_keyinit *, char *));
  103. extern int getliteral _((void));
  104. extern int getkey _((t_keymap *));
  105. extern int getinput _((char *, int, int));
  106. extern int ismacro _((void));
  107.  
  108. #endif /* __key_h__ */
  109.